/*********************************************************
 * 初学之家(http://www.g2room.com)，提供Java、Javascript（js）、Jquery、
 * 等一些工具或常用功能的实现例子代码，希望能给初学者提供学习和工作上的帮助，
 * 也希望有想提供源代码的朋友能联系我，一起努力，提供更多、更全面、更详细的
 * 一些初学代码例子及经验，帮助更多的人。
 * 
 * 我的联系方式：E-Mail：g2room@163.com
 * 网址：http://www.g2room.com
 * QQ：天涯（1173930590）
 * QQ交流群：323642758
 * 
 * 本站内容为提供各种java、javascript(JS)常用的工具源代码、实例（示例）、
 * 基本配置、教程、手册等；目前Java代码提供的工具（或转换）例子代码如下：
 * BASE64转换工具、bytes相关操作、email收发、文件操作（读写、拷贝、遍历、
 * 多线程copy等）、json格式转换、日志（Log4j）操作工具、Lucene搜索引擎的
 * 创建索引和搜索、各种不同Map的使用、定时器（Quartz）的使用例子、Socket的
 * 连接传输数据例子、WebService的例子及一些常用的工具类如String、Date及
 * JDK自带的一些工具类及函数的使用例子。
 * 
 * 说明：如需直接使用本站的例子代码，请保留此说明
 * 
 ********************************************************/
package com.g2room.io.file;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Enumeration;
import java.util.Properties;

/**
 * 使用Map接口下的 Properties 操作
 *
 * @createTime: Nov 28, 2013 11:39:33 PM
 * @author: <a href="mailto:g2room@163.com">天涯</a>
 * @version: 0.1
 * @lastVersion: 0.1
 * @updateTime: 
 * @updateAuthor: <a href="mailto:g2room@163.com">天涯</a>
 * @changesSum: 
 * 
 */
public class PropertiesOp {
	private final static String filePath = "D:/workspace/code/Java_Win7/Tests/src/com/g2room/io/file/test.properties";
	private final static String filePath_1 = "D:/workspace/code/Java_Win7/Tests/src/com/g2room/io/file/test_1.properties";
	public static void main(String[] args) {
		String key = "date";
		String value = "2013-11-";
//		getValue(key+"1");
		getAllValues();
	}
	
	public static void setValue(String key, String value) {
		Properties properties = new Properties();
		for(int i = 1; i < 10; i++) {
			properties.setProperty(key+i, value+i);
		}
		FileWriter fileWriter = null;
		try {
			fileWriter = new FileWriter(filePath);
			// 会覆盖原文件
			properties.store(fileWriter, "注释");
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if(null != fileWriter) fileWriter.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void getAllValues() {
		Properties properties = new Properties();
		FileReader fileReader = null;
		try {
			// 读取文件
			fileReader = new FileReader(filePath);
			properties.load(fileReader);
			
			// 列出所有属性配置
			Enumeration<Object> keys = properties.keys();
			while(keys.hasMoreElements()) {
				String key = (String) keys.nextElement();
				System.out.println(key + "=" + properties.getProperty(key));
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if(null != fileReader) fileReader.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
	public static void getValue(String key) {
		Properties properties = new Properties();
		FileReader fileReader = null;
		try {
			// 读取文件
			fileReader = new FileReader(filePath);
			properties.load(fileReader);
			String v = (String) properties.get(key);
			System.out.println("值为：" + v);
			
			// list方法
			PrintStream out = new PrintStream(filePath_1);
			// 只是复制内容到另外一个文件夹
			properties.list(out);
			
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if(null != fileReader) fileReader.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
}
